package com.heitian.ssm.dao;

import com.heitian.ssm.model.Album;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 作者： 陈建峰
 * 创建时间： 18/5/6 上午9:54
 * 版本： [1.0, 18/5/6]
 * 描述： 相册实现接口
 */
@Repository
public interface AlbumDao {

    /**
     * 保存相册
     * @param AlbumGuid
     * @param AlbumName
     * @param OwnerUserGuid
     * @param CreateTime
     * @param UpdateTime
     * @param SeeTimes
     * @param IsPublic
     * @param Content
     * @param Mark
     * @param ZanNum
     * @param AllCount
     * @param CoverUrl
     */
    void saveAlbum(@Param("AlbumGuid") String AlbumGuid, @Param("AlbumName") String AlbumName,
                    @Param("OwnerUserGuid") String OwnerUserGuid, @Param("CreateTime") String CreateTime,
                    @Param("UpdateTime") String UpdateTime, @Param("SeeTimes") String SeeTimes,
                    @Param("IsPublic") String IsPublic, @Param("Content") String Content,
                    @Param("Mark") String Mark, @Param("ZanNum") String ZanNum, @Param("AllCount") String AllCount,
                    @Param("CoverUrl") String CoverUrl);

    /**
     * 删除相册
     * @param AlbumGuid
     */
    void deleteAlbum(@Param("AlbumGuid") String AlbumGuid);

    /**
     * 获取某用户的相册列表
     * @param OwnerUserGuid
     * @param index
     * @param currentPageCount
     */
    List<Album> getAllAlbumByOwnerUserGuid(@Param("OwnerUserGuid") String OwnerUserGuid, @Param("index") int index, @Param("currentPageCount") int currentPageCount);

    /**
     * 获取所有的相册数量
     */
    int getAllAlbumCount();

    /**
     * 获取某用户的相册数量
     * @param OwnerUserGuid
     */
    int getAllAlbumCountByOwnerUserGuid(@Param("OwnerUserGuid") String OwnerUserGuid);

    /**
     * 获取某个相册信息
     * @param AlbumGuid
     * @return
     */
    Album getAlbumByAlbumGuid(@Param("AlbumGuid") String AlbumGuid);
}
